package cn.topevery.garden.entity.query;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.topevery.garden.entity.po.GreFile;
import cn.topevery.garden.framework.base.BaseQuery;
import hw.topevery.framework.dto.PointDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.locationtech.jts.geom.Geometry;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 *  查询参数
 *
 * @author code-generate
 * @date 2022-01-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "GreLandQuery", description = " 查询参数")
public class GreLandQuery extends BaseQuery {

    @ApiModelProperty(value = "主键id")
    private Integer id;

    @Excel(name = "编号")
    @ApiModelProperty(value = "编号")
    private String code;

    @Excel(name = "绿地名称")
    @ApiModelProperty(value = "绿地名称")
    private String greeClass;

    @ApiModelProperty(value = "街道id")
    private String streetId;

    @ApiModelProperty(value = "街道名称")
    private String streetName;

    @ApiModelProperty(value = "所属路段")
    private String aloneLoad;

    @Excel(name = "绿地面积")
    @ApiModelProperty(value = "面积")
    private Double measure;

    @Excel(name = "普查日期")
    @ApiModelProperty(value = "普查日期")
    private LocalDate date;

    @Excel(name = "具体地址")
    @ApiModelProperty(value = "具体地址")
    private String address;

    @ApiModelProperty(value = "范围")
    private transient Geometry mapRanges;

    @ApiModelProperty(value = "范围点信息")
    private List<List<PointDto>> mapRangesPoints;

    @ApiModelProperty(value = "坐标wkt字符串")
    private String geoWkt;

    @ApiModelProperty(value = "备注")
    private String description;

    @ApiModelProperty(value = "附件")
    private List<GreFile> fileList;

    @ApiModelProperty(value = "绿地类型id")
    private String type;

    @Excel(name = "绿地类型")
    @ApiModelProperty(value = "绿地类型")
    private String landType;

    @ApiModelProperty(value = "状态")
    private Integer dbStatus;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime dbCreateDate;

    @ApiModelProperty(value = "创建人id")
    private Integer dbCreateId;

    @ApiModelProperty(value = "绿地UUID")
    private String landId;

    @ApiModelProperty(value = "绿地UUID")
    private Integer landIntId;

    @ApiModelProperty(value = "区域id")
    private String distractId;

    @Excel(name = "所属区域")
    @ApiModelProperty(value = "区域名称")
    private String distractName;

    @ApiModelProperty(value = "部门id")
    private String deptId;

    @ApiModelProperty(value = "植被属性")
    private String attr;

    @ApiModelProperty(value = "植被数量")
    private Integer attrCnt;

    @ApiModelProperty(value = "大类ID")
    private String bigClassId;

    @ApiModelProperty(value = "大类")
    private String bigClassName;

    @ApiModelProperty(value = "中类ID")
    private String mediumClassId;

    @ApiModelProperty(value = "中类")
    private String mediumClassName;

    @ApiModelProperty(value = "小类Id")
    private String smallClassId;

    @ApiModelProperty(value = "小类")
    private String smallClassName;

    @Excel(name = "绿化覆盖面积")
    @ApiModelProperty(value = "绿化覆盖面积")
    private Double greMeasure;

    @ApiModelProperty(value = "数据发布 0 不发布 1 发布")
    private Boolean dataPublic;

    @ApiModelProperty(value = "部门名称")
    private String deptName;

    @ApiModelProperty(value = "是否免费开放")
    private String isFree;

    @Excel(name = "序号")
    @ApiModelProperty(value = "excel序号")
    private Integer eid;

    @Excel(name = "绿地大类编号")
    @ApiModelProperty(value = "绿地大类编号")
    private String bigClassCode;

    @Excel(name = "绿地中类编号")
    @ApiModelProperty(value = "绿地大类编号")
    private String mediumClassCode;

    @Excel(name = "绿地小类编号")
    @ApiModelProperty(value = "绿地大类编号")
    private String smallClassCode;

    @ApiModelProperty(value = "是否验证通过")
    private Boolean isPass;

    @ApiModelProperty(value = "图层名称")
    private String objName;

    @ApiModelProperty(value = "品种")
    private String variety;

    @ApiModelProperty(value = "管理单位")
    private String management;

    @ApiModelProperty(value = "开放时间")
    private String openHours;

    @ApiModelProperty(value = "栽种时间")
    private LocalDateTime plTime;

    @ApiModelProperty(value = "防护等级")
    private String level;

    @ApiModelProperty(value = "防护绿地规格")
    private String spec;

    @ApiModelProperty(value = "开放时间")
    private LocalDate conTime;

    @ApiModelProperty(value = "开放时间")
    private String keywords;

}
